package cn.wolfcode.wolf2world.service;

import cn.wolfcode.wolf2world.domain.Strategy;
import cn.wolfcode.wolf2world.domain.Travel;
import cn.wolfcode.wolf2world.query.TravelQueryObject;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.util.StringUtils;

import java.util.List;

/**
 * @author 杨兴健
 * @Date 2020-08-14 12:55
 */
public interface TravelService {
    void insert(Travel travel);
    void update(Travel travel);
    void delete(String id);
    Travel get(String id);
    List<Travel> list();

    /**
     * 前端旅游日记高级查询
     * @param qo 查询条件
     * @return
     */
    Page<Travel> query(TravelQueryObject qo);
    /**
     * 后端高级查询
     * @param qo
     * @return
     */
    Page<Travel> queryMgr(TravelQueryObject qo);
    /**
    * 新增或编辑旅游日记
    * @param travel
    */
    void saveOrUpdate(Travel travel);


    /**
     * 审核
     * @param id
     * @param state
     */
    void audit(String id, Integer state);

    /**
     * 下架
     * @param id
     * @param state
     */
    void up(String id, Integer state);


    /**
     * 与目的地相关的浏览量最高的前三
     * @param destId
     * @return
     */
    List<Travel> travelsViewnumTop3(String destId);

    /**
     * 根据目的地名称查询游记
     * @param keyword
     * @return
     */
    List<Travel> queryByDestName(String keyword);
}
